Conflict management program, storage medium for conflict management program storage, conflict management method, and electronic apparatus

ABSTRACT

Disclosed is a conflict management program that ensures that an application can be programmed without having to consider a conflict with another application. An application manager ( 25 ) is provided with an execution list ( 61 ) for registering a currently executed application and an execution wait list ( 62 ) for registering an application on standby. In the event of an application conflict, an application management block ( 64 ) references a conflict condition table that relates to the state of the currently executed application and to the state of the application on standby, which are registered in each list ( 61 ) and ( 62 ), and determines the states (running, terminated, waiting for execution, etc.) to which the applications should switch in accordance with the priorities of the current states of the applications. An application control block ( 65 ) respectively places the applications in the states determined by the application management block ( 64 ), thereby exercising application conflict management.

TECHNICAL FIELD

The present invention relates to a conflict management program a storagemedium for conflict management program storage, a conflict managementmethod, and an electronic apparatus suitable for use in a cellularphone, PHS (Personal Handyphone System) phone, PDA (Personal DigitalAssistant or Personal Data Assistant), personal computer, or otherterminal device.

BACKGROUND ART

Present-day cellular phones generally exercise application executionmanagement in a single-tasking manner.

If, for instance, an instruction is issued to execute an applicationwhile another application is being executed, the priorities of theseapplications are detected. A low-priority application is aborted tolaunch a high-priority application. Application conflict management isexercised in this manner.

If there is an incoming call while an e-mail message is being created,an application for e-mail message creation is aborted to launch anincoming call processing application and perform an incoming callhandling process. The reason is that the incoming call processingapplication has a higher priority than the e-mail message creationapplication. Consequently, the e-mail message creation process isstopped so as to preferentially process the incoming call.

Meanwhile, personal computers, which have a higher informationprocessing capability (performance) than cellular phones, generallyexercise application execution management in a multi-tasking manner.

If an application conflict occurs, the personal computers exerciseeither of the following conflict management methods.

In a first conflict management method, the operating system (OS) changesthe priority of a currently executed application (lowers the priority)without regard to the current state of the currently executedapplication, and preferentially executes another application whoseexecution is dictated later.

More specifically, if, for instance, the user issues an instruction forlaunching word-processing software while spreadsheet software is beingexecuted, the OS puts the spreadsheet software on standby andpreferentially launches the word-processing software. This ensures thata document can be created with the word-processing software while atable creation operation performed by the spreadsheet software isinterrupted.

In a second conflict management method, a conflicting application ispredicted when an application is programmed, and the latter applicationis programmed so that the two applications communicate with each otherin the event of a conflict and that one of the two applications changesits priority in accordance with the state of the other application.

When the second conflict management method is used, the priorities ofthe conflicting applications are determined in accordance with thecommunication established between the conflicting applications. It meansthat the applications autonomously exercise conflict management.

A related art concerning the above application management is disclosedby Japanese Translations of PCT for Patent No. 2003-504753.

As described earlier, present-day cellular phones exercise applicationconflict management in a single-tasking manner. However, it is predictedthat future cellular phones will exercise application executionmanagement in a multi-tasking manner.

If the aforementioned first or second management method is used forconflict management purposes, the following problems arise.

When conflict management is exercised by the aforementioned firstconflict management method, the OS aborts a currently executedapplication and executes a later-designated application withoutrecognizing the current state of the currently executed application.Therefore, when the application that was put on standby (previouslyexecuted application) is resumed upon termination of execution of thelater-designated application, the application that was put on standbymight improperly run (the operation of the application that was put onstandby cannot be guaranteed).

When conflict management is exercised by the aforementioned secondconflict management method, it is necessary to program an applicationwhile predicting all conflicting applications. Such prediction isdifficult when the number of conflicting applications increases or whenthe system becomes complicated.

If a change occurs in the specifications for an application while theaforementioned second conflict management method is used, it isnecessary to change the specifications for all the other relevantapplications accordingly. Thus, it is anticipated that it would benecessary to perform a troublesome task. More specifically, it would benecessary to reprogram and reinstall a number of applications (forapplying changes to application designs and implementations).

The use of conflict management methods in related art, which providemulti-tasking, makes it necessary to consider the above circumstancesand renders software development difficult.

DISCLOSURE OF INVENTION

The present invention has been made in view of the above circumstancesand provides a conflict management program, storage medium for conflictmanagement program storage, conflict management method, and electronicapparatus for making software development easy. More specifically, it isan object of the present invention to provide a conflict managementprogram, storage medium for conflict management program storage,conflict management method, and electronic apparatus that guarantee theoperation of an application that is put on standby, make it possible toprogram (design) an application without having to consider a conflictingapplication, and does not require a specification change in oneapplication to call for a specification change in the otherapplications.

The present invention is such that when execution request receiver meansreceives a task execution request, conflict detection means referencesan active task list in which an active task is registered, and checksfor a conflict between tasks.

When the conflict detection means detects a conflict between tasks,transition state determination means references a conflict conditiontable that stores the states to which the conflicting tasks shouldswitch, and determines the state to which the task related to the taskexecution request should switch and the state to which the taskregistered in the active task list should switch.

State transition means then causes the task related to the executionrequest and the task registered in the active task list to respectivelyswitch to the states determined by the transition state determinationmeans.

In this manner, the present invention assures that the execution of atask waiting to be executed resumes.

The present invention also makes it possible to program a task withouthaving to consider its conflict with the other tasks.

Further, if a change occurs in the specifications for a task, it isnecessary to apply such a specification change to the affected task onlybecause the task can be programmed without having to consider a conflictwith the other tasks.

Therefore, even when a specification change occurs in a task, thepresent invention makes it possible to avoid a troublesome task. Morespecifically, it is not necessary to change the specifications for allthe other tasks accordingly or reprogram and reinstall a number of tasks(for applying changes to task designs and implementations).

In addition, the present invention makes software developmentconsiderably easy because a task can be programmed without having toconsider a conflict with the other tasks.

The term “task” refers not only to a task but also to any application orprocess that is executed by a computer for information processingpurposes.

The term “active task” refers not only to a currently executed task butalso to an active task that is waiting to be executed.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is an overall block diagram illustrating a cellular phoneaccording to one embodiment of the present invention.

FIG. 2 is a functional block diagram illustrating the essential parts ofa cellular phone according to one embodiment of the present invention.

FIG. 3 is a functional block diagram illustrating the applications to beexecuted by a cellular phone according to one embodiment of the presentinvention.

FIG. 4 is a functional block diagram illustrating an application managerthat is provided in a cellular phone according to one embodiment of thepresent invention.

FIG. 5 is a schematic diagram illustrating the state transition ofapplications.

FIG. 6 is a flowchart illustrating an application conflict managementoperation that is performed by the application manager provided in acellular phone according to one embodiment of the present invention.

FIG. 7 shows an example of a conflict condition table that is providedin a cellular phone according to one embodiment of the presentinvention.

FIG. 8 shows an execution list that is provided in an application listof the application manager.

FIG. 9 shows an execution waiting list that is provided in theapplication list of the application manager.

FIG. 10 is a timing diagram illustrating a conflict management operationthat the application manager performs when a telephone applicationexecution request is issued while an address book application is beingexecuted.

FIG. 11 is a timing diagram illustrating a conflict management operationthat the application manager performs when an e-mail applicationexecution request is issued while a telephone application is beingexecuted.

BEST MODE FOR CARRYING OUT THE INVENTION

The present invention can be applied, for instance, to a cellular phone.The cellular phone according to the present invention is used in amobile communication system having a so-called home memory function,location registration function, tracking exchange function (automatictracking routine), handover function, and the like.

In a service area of the mobile communication system, a plurality ofbase stations are distributed. The base stations form cells, which arewireless communication areas. Each base station assigns a wirelesschannel to a cellular phone positioned within the local wirelesscommunication area, communicates with the cellular phone via thewireless channel, and synchronizes with the cellular phone.

When the cellular phone moves from one cell to another during acommunication, the mobile communication system exercises the so-calledhandover function to maintain communication. More specifically, themobile communication system switches the base station for communicationfrom a base station in the current cell to a base station in the newcell.

FIG. 1 is an overall block diagram illustrating a cellular phoneaccording to a first embodiment of the present invention, which is usedin a CDMA (Code Division Multiple Access) mobile communication system.

[Receiver Operation]

Referring to FIG. 1, a radio-frequency signal transmitted from a basestation is received by an antenna 1 and then supplied to a receivercircuit 3 (RX) via an antenna duplexer 2 (DUP). The RX 3 mixes theradio-frequency signal with a receiver local oscillation signal that issupplied from a frequency synthesizer 4 (SYN), and performs a frequencyconversion process to convert the radio-frequency signal to anintermediate frequency signal.

The frequency of the receiver local oscillation signal, which is outputfrom the SYN 4, is set by a control signal (SYC) that is fed from acontrol section 12 (CPU).

The aforementioned receiver intermediate frequency signal is subjectedto orthogonal demodulation in a CDMA signal processing section 6, andthen subjected to back diffusion by a diffusion code (PN code) that isassigned to a receiver channel. The receiver intermediate frequencysignal is then converted to demodulated data that is in a predefinedformat according to a data rate. The obtained demodulated data issupplied to a data code processing section 7, and a receiver data rate,which is contained in the receiver data to indicate the data rate, issupplied to the CPU 12.

The data code processing section 7 performs a decompression process onthe demodulated data, which is supplied from the CDMA signal processingsection 6, in accordance with the receiver data rate that is reported bythe CPU 12. The data code processing section 7 then performs a decodingprocess, which is based, for instance, on Viterbi decoding, and an errorcorrection/decoding process to form a reception baseband data.

The CPU 12 controls a PCM code processing section 8 so that the signalprocess performed by the PCM code processing section 8 varies with thetype of audio signal communication (voice communication/datacommunication).

In voice communication, the PCM code processing section 8 receives thereceiver data, which is supplied from the data code processing section7, and performs a PCM decoding process on the receiver data to form ananalog call receiver signal. The analog call receiver signal isamplified by a call receiver amplifier 9 and output from a loudspeaker10.

In data communication, the PCM code processing section 8 receives thereceiver data from the data code processing section 7, and supplies thereceiver data to the CPU 12. The CPU 12 stores the receiver data in amemory 13 for control purposes. Further, the CPU 12 outputs the receiverdata to a PDA (Personal Digital Assistant) or notebook computer asneeded via an external interface.

[Sender Operation]

In voice communication, the voice of a speaker is collected by amicrophone 11 and amplified to an appropriate level by a voice amplifier18. The PCM code processing section 8 then performs a PCM encodingprocess. The data derived from the PCM encoding process is supplied tothe data code processing section 7 as the sender data.

When image data or other data is supplied from the aforementioned PDA,notebook computer, camera, or other external device via the externalinterface, the data is forwarded to the CPU 12. The CPU 12 supplies thedata to the data code processing section 7 via the PCM code processingsection 8.

In voice communication, the data code processing section 7 detects theamount of energy in an input voice in accordance with the sender voicedata supplied from the PCM code processing section 8. Next, the datacode processing section 7 determines the data rate in accordance withthe detection result. The data code processing section 7 also performs acompression process on the sender data to obtain a burst signal that isformatted in accordance with the determined data rate. Further, the datacode processing section 7 performs an error correction/encoding processand then supplies the resultant signal to the CDMA signal processingsection 6.

In data communication, the data code processing section 7 performs acompression process on the sender data, which is supplied from the PCMcode processing section 8, to obtain a burst signal that is formattedaccording to a predetermined data rate, performs an errorcorrection/encoding process, and supplies the resultant signal to theCDMA signal processing section 6.

In voice communication and in data communication, the informationindicating a sender data rate, which is the aforementioned data rate, issupplied to the CPU 12.

The CDMA signal processing section 6 performs a diffusion process on theburst signal compressed by the data code processing section 7 by using aPN code that is assigned to a sender channel. The resultantdiffusion-encoded sender signal is subjected to an orthogonal modulationprocess. The resultant orthogonal modulated signal is then supplied to asender circuit 5 (TX).

The sender circuit 5 mixes the orthogonal modulated signal with a senderlocal oscillation signal, which is supplied from the SYN 4, to achieveconversion into a radio-frequency signal. Next, the sender circuit 5performs a high-frequency amplification process only on a valid portionof the radio-frequency signal in accordance with the sender data ratethat is set by the CPU 12. The resultant amplified signal is supplied tothe antenna 1 via the DUP 2 as a sender radio-frequency signal. Thesender radio-frequency signal is then burst transmitted from the antenna1 to a base station.

An operating control section 14 (KEY) is provided with various keys,including dial keys, call origination key, power key, end key, volumeadjustment key, and mode selection key.

A display section 15 is provided with a liquid-crystal display (LCD),which displays, for instance, a recipient's phone number, the operatingstatus of the apparatus, and received data. The display section 15 alsoincludes a light-emitting section (LED and the like) for indicating acall origination/call receiver operation, a recharging operation for arechargeable battery 16, and the like.

A power supply circuit 17 generates a predetermined operating supplyvoltage Vcc in accordance with power that is stored in the battery 16,and supplies the generated operating supply voltage to various circuitsof the cellular phone.

[Configuration of Essential Parts]

FIG. 2 shows the essential parts configuration of the cellular phoneaccording to the present embodiment. As indicated in FIG. 2, thecellular phone according to the present embodiment includes a hardwaregroup 21 whose operations are controlled by the CPU 12, a driver group22 that includes a plurality of drivers corresponding to the hardware inthe hardware group, an operating system 23 (OS), an application group 24that includes a plurality of applications, an application manager 25 forexercising application conflict management, and a conflict conditiontable 26 for storing information that indicates, for instance, whetherconflicting applications should start in various operating states ofapplications.

The hardware group 21 includes the operating control section 14; thedisplay section 15; a communication system 30, which includes, forinstance, the DUP 2, RX 3, CDMA signal processing section 6, and datacode processing section 7; a handheld camera 31; other hardware 32 suchas the light-emitting section (LED) and audio device; and a memory/filesystem 33, which includes, for instance, the memory 13.

The driver group 22 includes an LCD driver 34 (LCD Task/Driver) forexercising drive control over the display section 15, a key driver 35(KEY Driver) for exercising drive control over the operating controlsection 14, a communication driver 36 for exercising drive control overthe communication system, a camera driver 37 for exercising drivecontrol over the handheld camera 31, the other hardware drivers 38 forexercising drive control over the aforementioned other hardware, and amemory/file system driver 39 for exercising drive control over thememory/file system 33.

The application group 24 includes libraries 40 that are data shared bythe applications, a window manager 41, an application framework 42 thatprovides basic data for the applications, and various applications 43such as a telephone application, a clock application, a screen saver,and an application launcher.

“App1” and “App2,” which are shown in FIG. 2, represent any user-definedapplications.

In FIG. 2, the CPU 12, operating control section 14, display section 15,communication system 30, handheld camera 31, other hardware 32, andmemory/file system 33 are counted as the hardware. Items 23 to 26 (OS 23to conflict condition table 26) are counted as the software. Thesoftware is stored, for instance, in the memory 13, which is shown inFIG. 1.

(Functional Configuration of Various Applications)

FIG. 3 is a functional block diagram illustrating the variousapplications 43, which belong to the application group 24. As shown inFIG. 3, each application 43 includes a system control block 51. Thesystem control block communicates with the application manager 25 via acommunication block 50, which serves as an interface for theapplication. Each application 43 also includes a user control block 52,which provides application operations such as a telephone communicationand cellular phone mail creation.

As described later, the system control block 51 communicates with theapplication manager 25 so that the application manager 25 controls theoperating status (started, standby for startup, etc.) of eachapplication 43.

(Functional Configuration of Application Manager)

FIG. 4 is a functional block diagram of the application manager 25. Asshown in FIG. 4, the application manager 25 includes a communicationblock 60, which serves as an interface for the application manager 25.The application manager 25 also includes an application list 63. Theapplication list 63 includes an execution list 61, which stores dataindicating a currently executed application, and an execution wait list62, which stores data indicating an application that is waiting to beexecuted.

Further, the application manager 25 includes an application managementblock 64 and an application control block 65. The application managementblock 64 exercises application conflict management in accordance withthe lists 61, 62 stored in the application list. The application controlblock 65 exercises control over each application's startup, termination,state transition, and the like in accordance with conflict managementexercised by the application management block 64.

(Overview of Application Manager Operation)

When applications conflict with each other, the application manager 25determines the application to be executed, the application to bestarted, the application that waits to be started, and the applicationthat goes on standby for execution in accordance with the priorities,current states, and other conditions of the applications, and registersthe results in the lists 61, 62 accordingly.

When, for instance, the state of a registered application changes or anew application startup request is generated, the application manager 25restructures the lists 61, 62, and then exercises application conflictmanagement while referencing the restructured lists 61, 62.

(State Transitions of Applications)

To provide a more detailed description, FIG. 5 schematically showsvarious states of an application. As is obvious from FIG. 5, theapplication may be nonexistent or dormant. When the application isnonexistent, it is not stored, for instance, in the cellular phone (or amemory that stores the application is not attached to the cellularphone). When the application is dormant, it is stored in the cellularphone, but not designated for execution.

Further, the application may be currently executed or waiting to beexecuted.

An application that is not existent in the cellular phone can begenerated as indicated in FIG. 5 when it is installed in the cellularphone or a memory storing it is attached to the cellular phone. Thisapplication is then rendered dormant (existent in the cellular phone butnot executed or designated for execution).

When the user or another application issues an instruction for executingsuch a dormant application, a state transition occurs so that thedormant application becomes executed or waits to be executed asindicated in FIG. 5 (“started” or “started for standby”).

When the status of the dormant application is changed so that it isexecuted, the application manager 25 registers the executed applicationin the execution list 61.

When the status of the dormant application is changed so that it waitsto be executed, the application manager 25 registers the application,which waits to be executed, in the execution wait list 62.

The status of the executed application changes in accordance with itsoperating state and the like.

If, for instance, the above application is a telephone application, itsstatus changes during a time interval between the start and end ofcommunication. More specifically, the telephone application may be in aconnection state in which a process is performed to establish theconnection to a call destination, in a communication state in which aprocess is performed, for instance, to handle the voice forcommunication after connection establishment, in a hold state in which acall is put on hold when an instruction is issued during a telephonecall to put the call on hold, or in a break state in which a process isperformed to break the established connection when an instruction isissued to terminate the telephone call.

The first to fourth states and arrows interconnecting these states,which are indicated to illustrate the execution state in FIG. 5,represent the state transitions that may occur during applicationexecution.

The application manager 25 references the applications registered in theexecution list 61 and execution wait list 62 when it receives anapplication startup request, detects the termination of a currentlyexecuted application, or detects a state transition in a currentlyexecuted application. In accordance with the priority and status of eachapplication, the application manager 25, for example, puts a currentlyexecuted application on standby. Further, the application manager 25exercises conflict management, for instance, by executing an applicationthat has waited to be executed or an application for which a startuprequest is newly issued or by putting an application for which a startuprequest is newly issued on standby for startup.

An application whose execution is terminated becomes dormant asrepresented by the term “terminated” in FIG. 5. When a dormantapplication is deleted, it becomes nonexistent in the cellular phone.

[Conflict Management Operation by Application Manager]

The conflict management operation performed by the application manager25 will now be described with reference to a flowchart in FIG. 6.

When the application manager 25 receives an application startup request,detects the termination of a currently executed application, or detectsa state transition in a currently executed application, the flowchart inFIG. 6 starts (to begin a conditional determination process) andexecutes steps S1 and beyond.

In step S1, the application management block 64 of the applicationmanager 25 references the application list 63 because the applicationmanager 25 detects an application startup request, the termination of acurrently executed application, or a state transition in a currentlyexecuted application.

In step S2, the application management block 64 checks for anapplication registered in the execution list 61 within the applicationlist 63 for the purpose of determining whether any currently executedapplication exists.

If the application management block 64 does not find any currentlyexecuted application when it references the execution list 61 (noapplication is registered in the execution list 61), step S3 isperformed to register an application for which a startup request isgenerated in the execution list 61 or check applications registered inthe execution wait list 62 (applications waiting to be executed), selectthe application to be executed, and register the selected application inthe execution list 61.

After the application is registered in the execution list 61 by theapplication management block 64 as described above, the applicationcontrol block 65 performs step S10 to place the application registeredin the execution list 61 in an execution state.

Thus, the application for which the startup request is generated or theapplication waiting to be executed is executed.

If it is found in step S2 that more than one application is registeredin the execution list 61, the application management block 64 performsstep S4 to run a conflict check by referencing the conflict conditiontable 26 shown in FIG. 2.

(Conflict Condition Table)

The conflict condition table 26 for use in the conflict check is a tablein which various states of a currently executed application correlate tovarious states of a conflicting application. The conflict conditiontable 26 also indicates the states to which the currently executedapplication and conflicting application should switch in the event of anapplication conflict.

Therefore, when the total number of applications installed in thecellular phone according to the present embodiment is N and the numberof states possessed by the applications is M, the total number ofconflict condition tables provided in the cellular phone according tothe present embodiment is N×M.

FIG. 7 shows an example of the conflict condition table 26 that isreferenced when the telephone application is currently executed.

In FIG. 7, the first to nth states (n is a natural number) represent theaforementioned connection state, communication state, hold state, orother states. In FIG. 7, “Telephone,” “Standby,” . . . “Notepad” areconflicting applications whose states are referenced.

The meanings of the “Startup unachievable,” “Interrupting side standby,”“Running side standby,” and “Running side terminated” states aredescribed below:

“Startup unachievable”—An application for which a startup request isgenerated cannot be started. Therefore, the startup request is canceled.

“Interrupting side standby”—An application for which a startup requestis generated is caused to wait for execution, and a currently executedapplication is continuously executed.

“Running side standby”—A currently executed application is caused towait for execution without being terminated, and an application forwhich a startup request is generated begins to be executed.

“Running side terminated”—A currently executed application terminates,and an application for which a startup request is generated begins to beexecuted.

In order from the highest priority to the lowest, the states are“Startup unachievable,” “Interrupting side standby,” “Running sidestandby,” and “Running side terminated.”

In accordance with the current state of a currently executed applicationand the current state of a conflicting application, the applicationmanagement block 64 references the conflict condition table to detectthe states to which the currently executed application and conflictingapplication should switch (startup unachievable, interrupting sidestandby, running side standby, running side terminated, etc.).

In accordance with the priorities of the state to which the currentlyexecuted application should switch and the state to which theconflicting application should switch, which are detected by theapplication management block 64, the application control block 65 placesthe currently executed application in the detected state for thecurrently executed application and the conflicting application in thedetected state for the conflicting application.

The above flow will now be described with reference to the flowchart inFIG. 6. The application management block 64 performs step S5 to run theconflict check for the purpose of determination whether the applicationfor which a startup request is generated (the interrupting sideapplication) can be started.

If the result of the conflict check indicates that the interrupting sideapplication cannot be started, it is impossible to start theinterrupting side application. Therefore, the application managementblock 64 performs step S10 to cancel the startup request for theapplication designated by the startup request.

If, on the other hand, the result of the conflict check indicates thatthe interrupting side application can be started, the applicationmanagement block 64 temporarily registers the determination results ofthe interrupting side application (application ID, application name,task ID, status, etc.) in a provisional list.

The determination results registered in the provisional list areretained until the conflict check is completed for all the applicationsregistered in the application list 63. The provisional list is formed,for instance, in a predetermined area of the memory 13 or in a temporarystorage area within the CPU 12.

When the conflict check is completed for all the applications registeredin the application list 63, the application management block 64 detectsthe states to which the applications registered in the provisional listshould switch. In accordance with the aforementioned state priorities(“Startup unachievable,” “Interrupting side standby,” “Running sidestandby,” and “Running side terminated” in order from the highestpriority to the lowest), the application management block 64 determinesthe states to which the conflicting applications should switch, andreflects the obtained result in the application list 63.

As a result, the execution list 61 for each of the currently executedapplications, which includes an application identification number(application ID), application name, task identification number (taskID), status, and the like as shown in FIG. 8, and the execution waitlist 62 for each of the applications waiting to be executed, whichincludes an application identification number (application ID),application name, task identification number (task ID), status, and thelike as shown in FIG. 9, are formed within the application list 63.

The information indicating the state to which an application shouldswitch, which is determined as described above, is registered as thestatus shown in FIGS. 8 and 9. For the telephone application, theinformation concerning, for instance, the connection state,communication state, and hold state is registered.

The number of applications registered in the execution list 61 orexecution wait list 62 is not limited to one. If a plurality ofapplications are simultaneously executed or waiting to be executed, theapplication ID, application name, and the like are registered for eachof the plurality of applications.

In steps S1, S2, and S4 to S9 in the flowchart in FIG. 6, the conflictcheck result is repeatedly registered in the provisional list until theconflict check is completed for all the applications registered in theapplication list 63, and the information registered in the provisionallist is reflected in the application list 63 when the conflict check iscompleted for all the applications registered in the application list63.

After the result in the provisional list is reflected in the applicationlist 63, the application control block 65 performs step S10 to place anapplication registered in the execution list 61 within the applicationlist 63 in an execution state and place an application registered in theexecution wait list 62 in an execution wait state.

Subsequently, the application manager 25 waits to detect an applicationstartup request, the termination of a currently executed application, ora state transition in a currently executed application. When any ofthese is detected, the application manager 25 executes the flowchart inFIG. 6 again.

(Conflict Management Exercised During Telephone Application Execution)

The above operation will now be described in detail with reference to anexample in FIG. 7. As mentioned earlier, FIG. 7 shows an example of theconflict condition table that is referenced when the telephoneapplication is currently executed.

If, for instance, a telephone application startup request is generatedwhile a currently executed telephone application is in a connectionstate (first state), the conflict condition table 26 is referenced. Theconflict condition table 26 reads “Startup unachievable” as shown inFIG. 7 because multiple instances of the telephone application shouldnot run.

In the above instance, the application control block 65 cancels thegenerated telephone application startup request and allows the currentlyexecuted telephone application to be continuously executed.

However, if an e-mail creation request (or e-mail sender request) isgenerated while a currently executed telephone application is in theconnection state (first state), the conflict condition table 26 reads“Interrupting side standby” when referenced. Therefore, the applicationmanagement block 64 registers an e-mail application, which relates tothe generated e-mail creation request, in the execution wait list 62(the e-mail application is an interrupting side application in thisinstance) and causes the e-mail application to wait for execution.

If a motion picture player startup request is generated while thecurrently executed telephone application is a communication state(second state), the conflict condition table 26 reads “Startupachievable” when referenced. Therefore, the application management block64 registers a motion picture player application in the execution list61. Thus, the application control block 65 simultaneously executes thecurrently executed telephone application and the motion picture playerapplication.

If an address book startup request is generated while the currentlyexecuted telephone application is in the connection state (first state),the conflict condition table 26 reads “Running side standby” whenreferenced. Therefore, the application management block 64 deregistersthe currently executed telephone application from the execution list 61to register it in the execution wait list 62, and then registers anaddress book application in the execution list 61.

Thus, the application control block 65 causes the currently executedtelephone application to wait for execution, and executes the addressbook application, which relates to the generated startup request.

The foregoing concrete example description states that the applicationmanagement block 64 directly rewrites the information registered in theapplication list 63 in accordance with a detection result based on theconflict condition table 26. In the present embodiment, however, thedetermination results are temporarily stored in the provisional list,and when the determination process is completed for all theapplications, the contents of the provisional list are reflected in theapplication list 63.

(Conflict Management Exercised in the Event of a Conflict BetweenAddress Book and Telephone Applications)

The captioned conflict management will now be described in detail withreference to sequence diagrams (timing diagrams) in FIGS. 10 and 11.

FIG. 10 illustrates a conflict management process that is performed whena telephone application startup request is generated while the addressbook application is running.

The address book application is an application for registering,deleting, or otherwise editing, for instance, a call destinationcellular phone number and cellular phone mail address that are stored inan address book storage area, which is provided in a predetermined areaof the memory 13.

When, in step S11, the application launcher issues a telephoneapplication startup request to the application manager 25 as indicatedin FIG. 10, the application management block 64 of the applicationmanager 25 performs step S12 to reference the conflict condition table26, which has been described with reference to the example shown in FIG.7, and conducts the aforementioned conflict check.

If, as a result of the conflict check, the address book applicationwaits for execution to let the telephone application start (running sidestandby), the application management block 64 transmits a standbyrequest for the currently executed address book application to theapplication control block 65.

Upon receipt of the standby request, the application control block 65transmits the standby request to the currently executed address bookapplication in step S13, thereby putting the address book application onstandby.

When the address book application goes on standby, it performs step S14to transmit “Standby completion” data to the application managementblock 64 via the application control block 65.

Upon receipt of the “Standby completion” data, the applicationmanagement block 64 transmits a telephone application startup request tothe application control block 65. Upon receipt of the startup request,the application control block 65 performs step S15 to transmit thestartup request to the telephone application and start the telephoneapplication.

Upon completion of startup, step S16 is performed so that the telephoneapplication sends a startup completion notification to the applicationmanagement block 64.

When the telephone application execution progresses and then terminatesdue, for instance, to the termination of a call, step S17 is performedso that the telephone application sends a termination notification tothe application management block 64.

Upon receipt of the termination notification, the application managementblock 64 performs step S18 to reference a currently executed applicationand an application waiting to be executed that are registered in theapplication list 63, and conduct the aforementioned conflict check. Ifthe result of the conflict check indicates that the address bookapplication, which has been on standby, may be started, an address bookapplication startup request is transmitted to the application controlblock 65.

Upon receipt of the startup request, the application control block 65performs step S19 to exercise control for reexecuting the address bookapplication that has been on standby. When the address book applicationis reexecuted due to reexecution control, the address book applicationperforms step S20 to send a startup completion notification to theapplication management block 64.

Thus, the telephone application is executed in such a manner that anediting or other operation of the address book is interrupted. Further,the address book application is executed again after the termination ofa call so that an editing or other operation of the address book isperformed.

(Conflict Management Exercised in the Event of a Conflict Between E-mailand Telephone Applications)

FIG. 11 illustrates a conflict management process that is performed whenan e-mail application startup request is generated while the telephoneapplication is running.

The e-mail application is used, for instance, to send/receive cellularphone mail, delete or otherwise edit transmitted/received mail, orcreate cellular phone mail.

When, in step S21, the application launcher issues an e-mail applicationstartup request to the application manager 25 as indicated in FIG. 11,the application management block 64 of the application manager 25performs step S22 to reference the conflict condition table 26 andconducts the aforementioned conflict check.

If, as a result of the conflict check, the e-mail application for whichthe startup request is generated waits for execution to permit thecontinued execution of the telephone application (interrupting sidestandby), the application management block 64 transmits a standbyrequest for the e-mail application designated by the startup request tothe application control block 65.

Upon receipt of the standby request, the application control block 65performs step S23 to put the e-mail application designated by thestartup request on standby and continuously execute the telephoneapplication, which is currently executed.

When the telephone application execution progresses and then terminatesdue, for instance, to the termination of a call, step S24 is performedso that the telephone application sends a termination notification tothe application management block 64.

Upon receipt of the termination notification, the application managementblock 64 performs step S25 to reference a currently executed applicationand an application waiting to be executed that are registered in theapplication list 63, and conduct the aforementioned conflict check. Ifthe result of the conflict check indicates that the e-mail application,which has been on standby, may be started, an e-mail application startuprequest is transmitted to the application control block 65.

Upon receipt of the startup request, the application control block 65performs step S26 to exercise control for executing the e-mailapplication, which has been on standby. Thus, e-mail is transmitted,received, created, or otherwise handled after the termination of a call.

When a startup process for the e-mail application is completed, thee-mail application sends a startup completion notification to theapplication management block 64.

As is obvious from the above description, the cellular phone accordingto the present embodiment causes the application manager 25 to registera currently executed application in the execution list 61 within theapplication list 63 and register an application waiting for execution inthe execution wait list 62.

When, for instance, the application manager 25 receives an applicationstartup request, detects the termination of a currently executedapplication, or detects a state transition in a currently executedapplication, the application manager 25 references the execution list 61and execution wait list 62, determines the application to be executedand the application that should wait to be executed, and exerciseapplication conflict management for multi-tasking. Therefore, thefollowing advantages are provided.

The current state of a currently executed application and the status ofan application waiting for execution are referenced to comprehensivelydetermine the currently executed application and the application waitingfor execution and determine the application to be executed and theapplication that should wait for execution.

Therefore, it is possible to assure the resumption of the execution ofan application waiting for execution.

When, for instance, the user issues an instruction for executingword-processing software while spreadsheet software is being executed,application conflict management in related art is exercised topreferentially handle the instruction for executing word-processingsoftware and launch the word-processing software.

However, the cellular phone according to the present embodimentcomprehensively determines a currently executed application and anapplication waiting for execution, and determines the application to beexecuted and the application that should wait for execution. Therefore,even when the user issues an instruction for executing theword-processing software, it is possible to prevent the word-processingsoftware from starting if the spreadsheet software is in a predefinedexecution state. Thus, detailed application conflict management can beexercised.

Further, the application manager 25 references the application list 63and conflict condition table 26 to determine the application to beexecuted and the application that should wait for execution. In otherwords, the application manager 25 determines whether or not applicationsshould be executed.

As such being the case, an application can be programmed without havingto consider a conflict with another application.

If a specification change occurs in a certain application in a situationwhere an application can be programmed without having to consider aconflict with another application, no other applications require anyspecification change.

Therefore, even when a specification change occurs in a certainapplication, it is possible to avoid a troublesome task. Morespecifically, it is not necessary to change the specifications for allthe other applications accordingly or reprogram and reinstall a numberof applications (for applying changes to application designs andimplementations).

When an application is to be programmed for use in the cellular phoneaccording to the present embodiment, it is not necessary to consider aconflict with another application. This feature makes softwaredevelopment considerably easy.

[Other Fields of Application]

The foregoing embodiment description assumes that the present inventionis applied to a cellular phone. However, the present invention can alsobe applied to a PHS (Personal Handyphone System) phone, PDA (PersonalDigital Assistant or Personal Data Assistant), or other mobilecommunication terminal or personal computer or other terminal device.

Further, the foregoing embodiment description also assumes thatapplication conflict management is exercised. Alternatively, however,task conflict management may be exercised instead of applicationconflict management.

While the present invention has been described in conjunction withpreferred embodiments, it should be understood that design and othermodifications will become apparent to those of ordinary skill in the artand that such modifications are intended to be included within the scopeof the present invention and the following claims.

IN THE DRAWINGS

FIG. 1

-   6: CDMA signal processing section-   7: Data code processing section-   8: PCM code processing section-   14: Operating control section-   17: Power supply circuit-   12: Control section (CPU)-   15: Display section-   13: Memory    FIG. 2-   26: Conflict condition table-   Telephone application-   Clock application-   Screen saver-   Application launcher-   25: Application manager-   42: Application framework-   41: Window manager-   40: Library-   34: LCD driver-   35: Key driver-   36: Communication driver-   37: Camera driver-   38: Other hardware drivers-   22: Memory/file system driver-   14: Operating control section-   30: Communication system-   31: Handheld camera-   32: Other hardware-   21: Memory/file system    FIG. 3-   43: Application-   52: User control block-   51: System control block-   50: Communication block    FIG. 4-   25: Application manager-   Startup-   Termination-   State transition-   65: Application control block-   63: Application list-   61: Execution list-   62: Execution wait list-   64: Application management block-   60: Communication block    FIG. 5-   Execution states-   First state-   Third state-   Second state-   Fourth state-   Standby-   Execution wait state-   Started-   Started-   Terminated-   Started for standby-   Dormant-   Generated-   Deleted-   Nonexistent    FIG. 6-   START (start of conditional determination)-   S1: Reference application list-   S2: Application found in execution list?-   S3: Add to execution list-   S4: Reference conflict condition table for interrupting side    application state A and running application state B-   S5: Interrupting side application startup unachievable?-   S6: Compare conflict condition priority values in provisional list    and conflict condition table-   S7: Reflect determination results in provisional list-   S8: Checks of all listed applications completed?-   S9: Reflect provisional list in application list-   S10: Switch to state in accordance with conditional determination    results-   Wait for request    FIG. 7-   Status-   First state-   Second state-   Third state-   Fourth state-   Nth state-   Application-   Telephone-   Startup unachievable-   Startup unachievable-   Startup unachievable-   Startup unachievable-   Startup unachievable-   Standby-   Running side standby-   Running side standby-   Running side terminated-   Running side terminated-   Running side terminated-   Address book-   Running side standby-   Running side standby-   Running side standby-   Running side standby-   Running side terminated-   E-mail-   Interrupting side standby-   Startup achievable-   Running side standby-   Running side standby-   Running side terminated-   Browser-   Startup achievable-   Startup achievable-   Running side standby-   Startup achievable-   Running side terminated-   Motion picture player-   Startup achievable-   Startup achievable-   Running side standby-   Running side standby-   Startup achievable-   Notepad-   Startup achievable-   Startup achievable-   Running side standby-   Running side terminated-   Interrupting side standby    FIG. 8-   Execution list-   Application ID-   Application name-   Task ID-   Status-   Application ID-   Application name-   Task ID-   Status-   Application ID-   Application name-   Task ID-   Status    FIG. 9-   Execution list-   Application ID-   Application name-   Task ID-   Status-   Application ID-   Application name-   Task ID-   Status-   Application ID-   Application name-   Task ID-   Status    FIG. 10-   Application launcher-   Application manager-   Address book application-   Telephone application-   S11: Telephone application startup request-   S12: Conflict check-   Started-   Application conflict check result: Running side standby-   → Put conflicting application on standby and start requested    application-   S13: Application conflict standby request-   S14: Application conflict standby completion-   S15: Application startup-   S16: Application startup completion-   S17: Termination notification-   S18: Conflict check-   S19: Application normal startup request-   S20: Startup completion    FIG. 11-   Application launcher-   Application manager-   E-mail application-   Telephone application-   S21: E-mail application startup request-   S22: Conflict check-   Application conflict check result: Interrupting side standby → Put    conflicting application on standby-   S23: Application conflict standby request-   S24: Application termination notification-   S25: Conflict check-   S26: E-mail application startup-   S27: Startup completion

1. A computer-readable conflict management program that is to beexecuted by a computer, the conflict management program comprising thesteps of: receiving a task execution request; registering an active taskin an active task list; detecting for a task conflict by referencing theactive task list when the task execution request is received in theexecution request reception step; determining the state to which a taskdesignated by the task execution request should switch and the state towhich a task registered in the active task list should switch inaccordance with predetermined conditions when a task conflict isdetected in the conflict detection step; and respectively placing thetask designated by the task execution request and the task registered inthe active task list in the states determined in the transition statedetermination step.
 2. The computer-readable conflict management programaccording to claim 1, wherein the transition state determination stepcomprises: referencing, when a task conflict is detected in the conflictdetection step, a conflict condition table that stores states to whichconflicting tasks should switch; and determining respectively the stateto which the task designated by the task execution request should switchand the state to which the task registered in the active task listshould switch.
 3. The computer-readable conflict management programaccording to claim 2, wherein the active task registration stepcomprises: registering the task to be executed in an execution listwithin the active task list; and registering the task that should waitfor execution in an execution wait list within the active task list. 4.The computer-readable conflict management program according to claim 3,wherein the active task registration step comprises: selecting the taskto be executed and the task that should wait for execution in accordancewith the priorities of the states determined in the transition statedetermination step; registering the task to be executed in the executionlist; and registering the task that should wait for execution in theexecution wait list.
 5. The computer-readable conflict managementprogram according to claim 2, wherein the transition state determinationstep comprises: canceling the task execution request when it isdetermined that the task designated by the task execution request cannotbe executed.
 6. A storage medium for storing a computer-readableconflict management program that is to be executed by a computer andcausing the computer to perform the steps of: receiving a task executionrequest; registering an active task in an active task list; detectingfor a task conflict by referencing the active task list when the taskexecution request is received in the execution request reception step;determining the state to which a task designated by the task executionrequest should switch and the state to which a task registered in theactive task list should switch in accordance with predeterminedconditions when a task conflict is detected in the conflict detectionstep; and respectively placing the task designated by the task executionrequest and the task registered in the active task list in the statesdetermined in the transition state determination step.
 7. The storagemedium according to claim 6, wherein the transition state determinationstep comprises: referencing, when a task conflict is detected in theconflict detection step, a conflict condition table that stores statesto which conflicting tasks should switch; and determining respectivelythe state to which the task designated by the task execution requestshould switch and the state to which the task registered in the activetask list should switch.
 8. The storage medium according to claim 7,wherein the active task registration step comprises: registering thetask to be executed in an execution list within the active task list;and registering the task that should wait for execution in an executionwait list within the active task list.
 9. The storage medium accordingto claim 8, wherein the active task registration step comprises:selecting the task to be executed and the task that should wait forexecution in accordance with the priorities of the states determined inthe transition state determination step; registering the task to beexecuted in the execution list; and registering the task that shouldwait for execution in the execution wait list.
 10. The storage mediumaccording to claim 7, wherein the transition state determination stepcomprises: canceling the task execution request when it is determinedthat the task designated by the task execution request cannot beexecuted.
 11. A conflict management method comprising the steps of:receiving a task execution request; registering an active task in anactive task list; detecting for a task conflict by referencing theactive task list when the task execution request is received in theexecution request reception step; determining the state to which a taskdesignated by the task execution request should switch and the state towhich a task registered in the active task list should switch inaccordance with predetermined conditions when a task conflict isdetected in the conflict detection step; and respectively placing thetask designated by the task execution request and the task registered inthe active task list in the states determined in the transition statedetermination step.
 12. The conflict management method according toclaim 11, wherein the transition state determination step comprises:referencing, when a task conflict is detected in the conflict detectionstep, a conflict condition table that stores states to which conflictingtasks should switch; and determining respectively the state to which thetask designated by the task execution request should switch and thestate to which the task registered in the active task list shouldswitch.
 13. The conflict management method according to claim 12,wherein the active task registration step comprises: registering thetask to be executed in an execution list within the active task list;and registering the task that should wait for execution in an executionwait list within the active task list.
 14. The conflict managementmethod according to claim 13, wherein the active task registration stepcomprises: selecting the task to be executed and the task that shouldwait for execution in accordance with the priorities of the statesdetermined in the transition state determination step; registering thetask to be executed in the execution list; and registering the task thatshould wait for execution in the execution wait list.
 15. The conflictmanagement method according to claim 12, wherein the transition statedetermination step comprises: canceling the task execution request whenit is determined that the task designated by the task execution requestcannot be executed.
 16. An electronic apparatus comprising: executionrequest receiver means for receiving a task execution request; activetask registration means for registering an active task in an active tasklist; conflict detection means for referencing the active task list todetect for a task conflict when the task execution request is receivedby the execution request receiver means; transition state determinationmeans for determining the state to which a task designated by the taskexecution request should switch and the state to which a task registeredin the active task list should switch in accordance with predeterminedconditions when a task conflict is detected by the conflict detectionmeans; and state transition means for respectively placing the taskdesignated by the task execution request and the task registered in theactive task list in the states determined by the transition statedetermination means.
 17. The electronic apparatus according to claim 16,further comprising: a conflict condition table that stores states towhich conflicting tasks should switch, wherein when a task conflict isdetected by the conflict detection means, the transition statedetermination means references the conflict condition table, anddetermines the state to which a task designated by the task executionrequest should switch and the state to which a task registered in theactive task list should switch.
 18. The electronic apparatus accordingto claim 17, wherein the active task registration means registers thetask to be executed in an execution list within the active task list andregisters the task that should wait for execution in an execution waitlist within the active task list.
 19. The electronic apparatus accordingto claim 18, wherein the active task registration means selects the taskto be executed and the task that should wait for execution in accordancewith the priorities of the states determined by the transition statedetermination means, registers the task to be executed in the executionlist, and registers the task that should wait for execution in theexecution wait list.
 20. The electronic apparatus according to claim 17,wherein the transition state determination means cancels the taskexecution request when it is determined that the task designated by thetask execution request cannot be executed.